package com.tyk.bookstore.back.order.service;


import com.tyk.bookstore.back.order.manager.excel.model.OrderExcelVo;
import com.tyk.bookstore.back.order.model.query.CneeAddressUpdateQuery;
import com.tyk.bookstore.back.order.model.query.OrderDispatchQuery;
import com.tyk.bookstore.back.order.model.query.OrderPageQuery;
import com.tyk.bookstore.back.order.model.vo.OrderCneeAddressVo;
import com.tyk.bookstore.back.order.model.vo.OrderPageVo;
import com.tyk.bookstore.back.order.model.vo.OrderVo;

import java.util.List;
import java.util.Set;

/**
 * @author tyk
 * @description 订单管理
 */
public interface OrderService {

    /**
     * 获取订单详情
     */
    OrderVo getById(Long id);

/**
 * 分页查询订单
 *
 * @param query 订单分页查询参数
 */
    OrderPageVo getPage(OrderPageQuery query);

    /**
     * 派单
     */
    void dispatch(OrderDispatchQuery query);

    /**
     * 删除订单
     */
    void deleteById(Long id);

    /**
     * 批量删除订单
     */
    void deleteBatchByIdSet(Set<Long> idSet);

    /**
     * 更改收货地址
     */
    void updateCneeAddress(CneeAddressUpdateQuery query);

    /**
     * 获取订单收件地址信息
     */
    OrderCneeAddressVo getCneeAddressByOrderId(Long orderId);

    /**
     * 获取Excel导出数据
     *
     * @param query 同分页查询参数
     * @return Excel导出数据
     */
    List<OrderExcelVo> getOrderExcelVoList(OrderPageQuery query);
}
